import { Base } from "../core/Base";
/**
 * 系统管理类
 * @author jiangjinwei
 */
class SystemManager extends Base{
    constructor(opts={}){
        super(opts);
        this._systems=new Map();
    }
    get systems(){
        return this._systems;
    }
    active(){
        this.systems.forEach(system=>{
            system.active();
        });
    }
    /**
     * 添加系统
     * @param {System} system 系统实例。
     * @returns {SystemManager} 返回系统管理类。
     */
    add(system){
        this.systems.set(system.id,system);
        return this;
    }
    /**
     * 移除系统
     * @param {*} system 系统实例ID。
     * @returns {SystemManager} 返回实体管理类。
     */
    remove(id){
        let e=this.get(id);
        this.systems.delete(e.id);
        e._destroy();
        return this;
    }
    /**
     * 获取系统
     * @param {*} systemId 系统实例ID。
     * @returns {System} 返回系统实例。
     */
    get(id){
        return this.systems.get(id);
    }
    /**
     * 是否存在该实体。
     * @param {*} systemId 系统实例ID。
     * @returns {Boolean} 系统是否存在。
     */
    has(id){
        return this.systems.has(id);
    }
}
export {SystemManager}